import type { ApiPageResponse, ApiResponse } from '../types'
import type { ShortLink, LinkGroup, UserDomain, GetShortLinksParams, CreateShortLinkParams, CreateGroupParams } from './models'
import { httpService } from '../../utils/request'

/**
 * 获取分组下的短链接列表
 * @param params 请求参数
 * @returns 分页的短链接列表
 */
export async function getShortLinks(params: GetShortLinksParams): Promise<ApiPageResponse<ShortLink>> {
    return httpService.get('/link/get', params)
}

/**
 * 获取所有分组列表
 * @returns 分组列表
 */
export async function getLinkGroups(): Promise<ApiResponse<LinkGroup[]>> {
    return httpService.get('/link/group/get')
}

/**
 * 获取用户域名列表
 * @returns 用户域名列表
 */
export async function getUserDomains(): Promise<ApiResponse<UserDomain[]>> {
    return httpService.get('/link/domain/get')
}

/**
 * 创建短链接
 * @param params 创建参数
 * @returns 创建的短链接信息
 */
export async function createShortLink(params: CreateShortLinkParams): Promise<ApiResponse<ShortLink>> {
    return httpService.post('/link/create', params)
}

/**
 * 创建分组
 * @param params 创建参数
 * @returns 创建的分组信息
 */
export async function createGroup(params: CreateGroupParams): Promise<ApiResponse<LinkGroup>> {
    return httpService.post('/link/group/create', params)
}

/**
 * 获取短链接统计信息
 * @param shortUrl 短链接URL
 * @returns 统计信息
 */
export async function getLinkStats(shortUrl: string): Promise<ApiResponse<any>> {
    return httpService.get('/link/stats', { shortUrl })
}


